//
//  main.m
//  01-结构体
//
//  Created by zhongad on 2017/2/16.
//  Copyright © 2017年 zhongad. All rights reserved.
//


/*
 NSRange(location length)
 NSPoint\CGPoint
 NSSize\CGSize
 NSRect\CGRect (CGPint CGSize)
 */

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    // 使用这些CGPointEqualToPoint、CGRectContainsPoint等函数的前提是添加CoreGraphics框架
    
    // NextStep  Foundation
    
    
    // 比较两个点是否相同（x、y）
    BOOL b = CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));
    //CGRectEqualToRect(<#CGRect rect1#>, <#CGRect rect2#>)
    //CGSizeEqualToSize(<#CGSize size1#>, <#CGSize size2#>)
    
    
    // x (50, 150) y (40 , 90)
    BOOL b2 = CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(60, 45));
    
    NSLog(@"%d", b2);
    return 0;
}

void point()
{
    CGPoint p1 = NSMakePoint(10, 10);
    NSPoint p2 = CGPointMake(20, 20);// 最常用
    
    NSSize s1 = CGSizeMake(100, 50);
    NSSize s2 = NSMakeSize(100, 50);
    CGSize s3 = NSMakeSize(200, 60);
    
    CGRect r1 = CGRectMake(0, 0, 100, 50);
    
    CGRect r2 = { {0, 0}, {100, 90}};
    
    CGRect r3 = {p1, s2};
    
    // 使用CGPointZero等的前提是添加CoreGraphics框架
    CGRect r4 = {CGPointZero, CGSizeMake(100, 90)};
    
    
    // CGSizeZero
    // CGRectZero
    
    // 表示原点
    // CGPointZero == CGPointMake(0, 0)
    
    
    // 将结构体转为字符串
    //NSString *str = NSStringFromPoint(p1);
    
    //NSString *str = NSStringFromSize(s3);
    
    NSString *str = NSStringFromRect(r1);
    
    NSLog(@"%@", str);
    
    
    // NSLog(@"x=%f, y=%f, width=%f, height=%f", r1.origin.x, r1.origin.y, r1.size.width, r1.size.height);
}

void range()
{
    // @"i love oc"  // love的范围
    
    //NSRange r1 = {2, 4}; // 不用
    //NSRange r2 = {.location = 2, .length = 4};// 不用
    //NSRange r3 = NSMakeRange(2, 4); // 掌握
    NSString *str = @"i love oc";
    
    // 查找某个字符串在str中的范围
    // 如果找不到，length=0，location=NSNotFound==-1
    NSRange range = [str rangeOfString:@"java"];
    NSLog(@"loc = %ld, length=%ld", range.location, range.length);
}
